#ifndef LEX_H
#define LEX_H

class StateMachine;

class Lex {
    
public:
	Lex(): _svToken(TOKEN_NONE) {};
	Token getNextToken();
	void  saveToken(Token token) { _svToken = token; }
	const char *getCurrLexme() const;
	bool loadFile(const char *filename) { return _stream.open(filename);}
	
private:
    InputStream _stream;
	OutputStream _outStream;
	StateMachine _stMac;
	Token        _svToken;
	
};

#endif
